<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        li{
            height:40px;
            border-bottom: 1px solid #ccc;
        }
        .bg1{
            background:red;
        }
        .bg2{
            background:red;
        }
    </style>
    <script src="js/jquery-3.3.1.js"></script>
    <script>
        $(f);

        var isShiftDown = false;
        var prevLiIndex;

        function f(){
           $(document).keydown(
               function(e){
                   isShiftDown = e.shiftKey;
               }
           );

            $("li").mouseover(
                function(){
                    $(this).addClass("bg1");
                }
            );
            $("li").mouseout(
                function(){
                    $(this).removeClass("bg1");
                }
            );
            $("li").click(
                function(){
                    $("li").removeClass("bg2");

                    if(prevLiIndex&&isShiftDown){
                        $("li:nth-of-type(n+"+(prevLiIndex+1)
                            +"):nth-of-type(-n+"
                            +($(this).index()+1)+")")
                            .addClass("bg2");
                    }else {
                        $(this).addClass("bg2");
                    }

                    prevLiIndex = $(this).index();
                }
            );
        }
    </script>
</head>
<body>

    <ul onselectstart="return false;">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>

</body>
</html>